package com.itheima.service.Impl;

import com.alibaba.dubbo.config.annotation.Service;
import com.itheima.dao.MemberDao;
import com.itheima.pojo.Line;
import com.itheima.pojo.Member;
import com.itheima.service.MemberService;
import com.itheima.service.UserService;
import com.itheima.utils.MD5Utils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import sun.security.provider.MD5;

import java.util.ArrayList;
import java.util.List;

@Service(interfaceClass = MemberService.class)
@Transactional
public class MemberServiceImpl implements MemberService {
    @Autowired
    private MemberDao memberDao;

    @Override
    public Member findByTelephone(String telephone) {
        return memberDao.findByTelephone(telephone);
    }

    @Override
    public void add(Member member) {
        //这里之所以要先拿出来这个会员他的密码是因为,我们这里都是给他自动注册成会员的,只需要他一个手机号就可以了
        //所以这种方式的注册并不需要他设置密码,但是也有其他方式给他注册会员,可能这种就是线下的表格形式,这样他就会设置密码
        //这样这个会员添加的时候就会带有密码,所以上面两个情况是不一样的,所以我们要判断到底有没有密码这一项,如果有那我们就进行MD5加密
        String password1 = member.getPassword();
        if (password1 != null) {
            //使用md5进行加密
            String password = MD5Utils.md5(password1);
            member.setPassword(password);
        }
        memberDao.add(member);
    }

    @Override
    public List<Integer> findMemberCountByMonths(List<String> months) {
        //因为这里有很多个月,所以我们需要搞个list集合,我们要在这把月份存起来
        List<Integer>memberCount=new ArrayList<>();
       for(String month:months){
           String date=month+".31";
           Integer count = memberDao.findMemberCountBeforeDate(date);
           memberCount.add(count);
       }
        return memberCount;
    }

    @Override
    public List<Integer> findLine(List<String> months) {
        List<Integer>list=new ArrayList<>();
        for (String month : months) {
           String date= month+".31";
            Integer count = memberDao.findMemberCountBeforeDate(date);
            list.add(count);
        }
        return list;
    }

    // 移动端更新会员信息
    @Override
    public void updatePersonalData(Member member) {
        memberDao.edit(member);
    }
}
